"""
Setup script for the graduation project robotics simulation package.
"""

from setuptools import setup, find_packages

# Read the requirements from requirements.txt (if it exists) or define them manually
install_requires = [
    "numpy>=1.20.0",
    "torch>=1.10.0",
    "onnxruntime>=1.8.0",
]

# Optional: Isaac Sim dependencies will be handled by the Isaac Sim environment
setup_requires = []

setup(
    name="graduation-project",
    version="0.1.0",
    description="NVIDIA Isaac Sim robotics simulation with G1 humanoid robot control",
    long_description="""
    A robotics simulation platform built on NVIDIA Omniverse Isaac Sim 4.5.0,
    featuring G1 humanoid robot control with keyboard input and ONNX policy integration.

    This package provides a modular architecture for robot control, simulation,
    and interaction, designed for embodied AI research and education.
    """,
    long_description_content_type="text/plain",
    author="Graduation Project Team",
    author_email="",
    url="",

    # Package discovery
    packages=find_packages(),

    # Python version requirement
    python_requires=">=3.10",

    # Dependencies
    install_requires=install_requires,
    setup_requires=setup_requires,

    # Package metadata
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Topic :: Scientific/Engineering :: Artificial Intelligence",
        "Topic :: Scientific/Engineering :: Physics Simulation",
    ],

    # Keywords
    keywords="robotics simulation isaac-sim humanoid-robot embodied-ai",

    # Project URLs
    project_urls={
        "Bug Reports": "",
        "Source": "",
        "Documentation": "",
    },

    # Include data files (assets, models, etc.)
    include_package_data=True,
    package_data={
        "": ["*.md", "*.txt", "*.yml", "*.yaml"],
        "core": ["*.usd", "*.usdc"],
        "assets": ["**/*.usd", "**/*.onnx"],
    },

    # Entry points for running the simulation
    entry_points={
        "console_scripts": [
            "graduation-project=graduation_project.__main__:main",
        ],
    },

    # Zip safe (avoid zipping for easier development)
    zip_safe=False,
)